package com.taoban.shopdata.thread;

import java.util.concurrent.BlockingQueue;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import com.taoban.shopdata.core.PriceUpdatedTaskRequest;
import com.taoban.shopdata.entity.PriceUpdatedCommitResult;

/**
 * @author jasstion
 * 下午2:30:09
 * 不停的获取要更新的商品信息列表以及对应的商城信息
 */
public class PriceUpdatedTaskFetchThread implements Runnable {
	private static Log mLog = LogFactory.getLog(PriceUpdatedTaskFetchThread.class);

	BlockingQueue<PriceUpdatedCommitResult> taskQueues;
	public PriceUpdatedTaskFetchThread(BlockingQueue<PriceUpdatedCommitResult> taskQueues) {
		super();
		this.taskQueues=taskQueues;
		// TODO Auto-generated constructor stub
	}
	@Override
	public void run() {
		// TODO Auto-generated method stub
		mLog.info("开始向spider-server请求新的批量商品信息");
		PriceUpdatedCommitResult priceUpdatedCommitResult=null;
		try {
			priceUpdatedCommitResult=PriceUpdatedTaskRequest.requestBatchItemInfos();
			
		if(taskQueues.size()>=10){
			//wait for some time
			taskQueues.add(priceUpdatedCommitResult);

		    //如果当前的队列中有99个任务等待处理，则暂停五十分钟之后再去请求
				Thread.currentThread().sleep(1000*60*50);
			} 
		
		if(priceUpdatedCommitResult!=null){
			taskQueues.add(priceUpdatedCommitResult);

		}}catch (Exception e) {
			// TODO Auto-generated catch block
			mLog.info(e.getMessage());
		}
	}

}
